home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / Buch / Eckig.cpp < prev    next >
C/C++ Source or Header  |  1998-12-30  |  3KB  |  84 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "Eckig.h"
  6. //---------------------------------------------------------------------------
  7. #pragma resource "*.dfm"
  8.  
  9. class TQuadrat
  10. {
  11. public:
  12.   int x, y, Dicke;
  13.   void Erscheinen (void);
  14.   void Bewegen (void);
  15.   void Verschwinden (void);
  16.   TQuadrat (int xx, int yy, int dd);
  17. };
  18.  
  19. const int FMax = 16;
  20. TColor Farbe[FMax] =
  21.   {clBlack, clMaroon, clGreen, clNavy, clTeal, clPurple,
  22.    clOlive, clGray, clSilver, clRed, clLime, clBlue,
  23.    clAqua, clFuchsia, clYellow, clWhite};
  24.  
  25. TQuadrat *Quadrat;
  26. TForm1 *Form1;
  27. //---------------------------------------------------------------------------
  28. TQuadrat::TQuadrat(int xx, int yy, int dd)
  29. {
  30.   x = xx; y = yy; Dicke = dd;
  31. }
  32. //---------------------------------------------------------------------------
  33. void TQuadrat::Erscheinen (void)
  34. {
  35.   Form1->Canvas->Brush->Color = Farbe[random (FMax)];
  36.   Form1->Canvas->Rectangle(x, y, x+Dicke, y+Dicke);
  37. }
  38. //---------------------------------------------------------------------------
  39. void TQuadrat::Bewegen (void)
  40. {
  41.   TRect Quelle, Ziel;
  42.   for (int i=x-5; i<Form1->ClientWidth-Dicke-x-5; i++)
  43.   {
  44.     Quelle = Rect(i,   y-5, i+Dicke+5, y+Dicke+5);
  45.     Ziel   = Rect(i+1, y-5, i+Dicke+6, y+Dicke+5);
  46.     Form1->Canvas->CopyRect(Ziel, Form1->Canvas, Quelle);
  47.     // Bremse, abhΣngig vom Prozessortakt!
  48.     for (int j=0; j<1000000; j++) ;
  49.   }
  50. }
  51. //---------------------------------------------------------------------------
  52. void TQuadrat::Verschwinden (void)
  53. {
  54.   Form1->Refresh ();
  55. }
  56. //---------------------------------------------------------------------------
  57. __fastcall TForm1::TForm1(TComponent* Owner)
  58.     : TForm(Owner)
  59. {
  60. }
  61. //---------------------------------------------------------------------------
  62. void __fastcall TForm1::Button1Click(TObject *Sender)
  63. {
  64.   Quadrat->Erscheinen ();
  65. }
  66. //---------------------------------------------------------------------------
  67. void __fastcall TForm1::Button2Click(TObject *Sender)
  68. {
  69.   Quadrat->Bewegen ();
  70. }
  71. //---------------------------------------------------------------------------
  72. void __fastcall TForm1::Button3Click(TObject *Sender)
  73. {
  74.   Quadrat->Verschwinden ();
  75. }
  76. //---------------------------------------------------------------------------
  77. void __fastcall TForm1::FormCreate(TObject *Sender)
  78. {
  79.   randomize ();
  80.   Color = Farbe[random (16)];
  81.   Quadrat = new TQuadrat (30, 30, 150);
  82. }
  83. //---------------------------------------------------------------------------
  84.